import java.util.ArrayList;
import java.util.List;

/**
 * Student 类（学生）：
 * 约束：参加 1-5 门课程学习。
 */
public class Student {
    private String name;
    // 关联：参加 1-5 门课程 (多重性 1..5)
    private List<Subject> subjects; 

    public Student(String name) {
        this.name = name;
        this.subjects = new ArrayList<>();
    }
    
    public void enrollSubject(Subject subject) {
        if (subjects.size() < 5) { // 最大约束为 5
            this.subjects.add(subject);
        } else {
            System.out.println("警告: " + name + " 选课数量已达上限 (5门)。");
        }
    }
    
    // 验证方法：确保满足最小约束
    public boolean isValid() {
        return subjects.size() >= 1; // 参加 1-5 门课程
    }

    public String getName() {
        return name;
    }
    
    public List<Subject> getSubjects() {
        return subjects;
    }
}